package com.zx.service;

import com.zx.core.wrapper.ObjectWrapper;
import com.zx.core.wrapper.PageWrapper;
import com.zx.core.wrapper.ResponseWrapper;
import com.zx.model.Course;
import com.zx.param.CourseParam;

/**
 * <p>
 * description: 课程服务接口 <br>
 * create: 2024-10-25 11:58
 * </p>
 *
 * @author zhou  xun
 */
public interface CourseService {
    /**
     * 保存课程
     *
     * @param course 课程信息
     */
    ResponseWrapper saveCourse(CourseParam course);

    /**
     * 根据课程id删除课程
     *
     * @param id 课程id
     */
    ResponseWrapper deleteCourseById(Long id);

    /**
     * 根据课程id查询课程信息
     *
     * @param id 课程id
     * @return 课程信息
     */
    ObjectWrapper<Course> findCourseById(Long id);

    /**
     * 根据课程id更新课程信息
     *
     * @param course 课程信息
     */
    ResponseWrapper updateCourseById(CourseParam course);

    /**
     * 分页查询课程信息
     *
     * @param course 查询条件
     * @return {@link PageWrapper<Course>}
     * @author zhou  xun
     * @since 2024-10-25
     */
    PageWrapper<Course> findCourseByPage(CourseParam course);
}
